// 薪酬管理-智能计薪-工资表 and 工资表模板
import serveUrl from "@/config_xc/serverAddress"; // 接口域名列表
import axios from "@/config_xc/http"; // 导入http中创建的axios实例
const smartSalary = {

  /**
   * @api{property} 获取工资项模板
   */
  salaryTenantPublicTemplate() {
    return axios.get(`${serveUrl.cs}/SalaryTenantPublicTemplate`);
  },

  /**
   * 获取工资表模板列表
   */
  getSalaryTemplates(params) {
    return axios.get(`${serveUrl.cs}/SalaryTemplate/GetSalaryTemplates`, { params });
  },

  /**
   * 添加工资表模板
   */
  addSalaryTemplate(data) {
    return axios.post(`${serveUrl.cs}/SalaryTemplate/AddSalaryTemplate`, data);
  },

  /**
   * 删除工资表模板
   */
  removeSalaryTemplate(params) {
    return axios.delete(`${serveUrl.cs}/SalaryTemplate/Remove`, { params });
  },

  /**
   * 工资表模板获取详情
   */
  getSalaryTemplate(params) {
    return axios.get(`${serveUrl.cs}/SalaryTemplate/GetSalaryTemplate`, { params });
  },

  /**
   *  编辑主表，不包含引入人员信息
   */
  editSalaryTemplate(data) {
    return axios.put(`${serveUrl.cs}/SalaryTemplate/EditSalaryTemplate`, data);
  },

  /**
   *  修改所有，如果没有修改子集合传入key:[]
   */
  editSalaryTemplateItems(data) {
    return axios.put(`${serveUrl.cs}/SalaryTemplate/EditSalaryTemplateItems`, data);
  },

  /**
   * 添加一个工资项中的小项
   */
  addColumn(data) {
    return axios.post(`${serveUrl.cs}/SalaryTenantPublicTemplate`, data);
  },

  /**
   * 编辑工资小项
   */
  editSalaryColumn(data) {
    return axios.put(`${serveUrl.cs}/SalaryTemplate/EditSalaryColumn`, data);
  },

  /**
   * 编辑模板工资小项
   */
  editSalaryColumnTemplate(data) {
    return axios.put(`${serveUrl.cs}/SalaryTenantPublicTemplate/EditSalaryColumn`, data);
  },

  /**
   * 删除工资小项
   */
  removeColumn(params) {
    return axios.delete(`${serveUrl.cs}/SalaryTenantPublicTemplate/RemoveColumn`, { params });
  },

  /**
   * 添加工资项
   */
  addSalaryItem(data) {
    return axios.post(`${serveUrl.cs}/SalaryTenantPublicTemplate/AddSalaryItem`, data);
  },

  /**
   * 编辑工资项
   */
  editSalaryItem(data) {
    return axios.put(`${serveUrl.cs}/SalaryTenantPublicTemplate/EditSalaryItem`, data);
  },

  /**
   * 删除工资项
   */
  removeItem(params) {
    return axios.delete(`${serveUrl.cs}/SalaryTenantPublicTemplate/RemoveItem`, { params });
  },

  /***************************************** 工资表 ***********************************************/
  /**
   * 工资表列表
   */
  getWagesList(params) {
    return axios.get(`${serveUrl.cs}/Wages`, { params });
  },

  /**
   * 添加工资表
   */
  generateWages(params) {
    return axios.get(`${serveUrl.cs}/Wages/GenerateWages`, { params });
  },

  /**
   * 获取工资表详情
   */
  getWages(params) {
    return axios.get(`${serveUrl.cs}/Wages/GetWage`, { params });
  },

  /**
   * 获取工资计算数据源
   */
  GetWageCalculateSourceView(params, userIds) {
    return axios.get(`${serveUrl.cs}/Wages/GetWageCalculateSourceView?${userIds}`, { params });
  },

  /**
   * 删除工资表
   */
  removeWages(params) {
    return axios.delete(`${serveUrl.cs}/Wages/Remove`, { params });
  },

  /**
   * 重新生成工资表
   */
  regenerateWages(params) {
    return axios.get(`${serveUrl.cs}/Wages/RegenerateWages`, { params });
  },

  /**
   * 保存工资表
   */
  saveWages(data) {
    return axios.put(`${serveUrl.cs}/Wages`, data);
  },

  /**
   * 删除指定用户
   */
  removeUserWage(params, data) {
    return axios.delete(`${serveUrl.cs}/Wages/RemoveUserWage`, { params, data });
  },

  /**
   * 工资表导出
   */
  wagesExport(params) {
    return axios.get(`${serveUrl.cs}/Wages/WagesExport`, { params });
  },

  /**
   * 工资表打印
   */
  wagesPrint(data) {
    return axios.put(`${serveUrl.cs}/Wages/WagesPrint`, data);
  },

  /**
   * 工资表导入模板下载
   */
  wagesDownTemplate(params) {
    return axios.get(`${serveUrl.cs}/Wages/WagesDownTemplate`, { params });
  },

  /**
   * 工资表导入
   */
  wagesImport(params, data) {
    let str = params.columnsPy.map(key => `columnsPy=${key}`).join('&');
    delete params.columnsPy;
    return axios.put(`${serveUrl.cs}/Wages/WagesImport?${str}`, data, { params } );
  },

  /**
   * 获取所有类型模板 
   */
  GetSystemFormulaTypeTemps() {
    return axios.get(`${serveUrl.cs}/SystemFormula/GetSystemFormulaTypeTemps`);
  }
};

export default smartSalary;
